第16章 Mediator
#Java言語で学ぶデザインパターン入門 増補改訂版 #Mediator
相手は相談役一人だけ
メンバーはみんな相談役だけに報告し、メンバーへの指示は相談役だけから来る (p.238)
指示は来るが、詳細はメンバーに任されている
メンバー同士がコミュニケーションしない
用語
相談役:mediator(調停者)
メンバー:colleague(同僚)
サンプルコード:ログインダイアログ
ラジオボタン
テキスト入力
ボタン
状態が複雑
表示のコントロールのロジックは、相談役の中にだけ記述する (p.241)
2つのインターフェース
Mediator
createColleagues
colleagueChanged
Colleague
setMediator:相談役を設定
setColleagueEnabled
相談役が呼ぶ。Colleagueはenabledになって呼ばれたので実行するだけ
Mediatorインターフェースを実装するクラス(LoginFrame)
createColleagues
各ColleagueのsetMediatorを呼び出し
this(LoginFrame自体)を指定する
colleagueChanged
すべてのColleagueの相談が集結
必要なColleagueのsetColleagueEnabledを呼ぶ(相談役に判断ロジックがある)